@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@W!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `8  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D8:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D8:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED697 FREE SECTORS COPYING---D8:COPY32.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 144ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uWA7W (c)1983 Action Computer Services  B JKIHiDiELV`LAT} A BLV`LAAl LA &` Fj`8冨凪` "BEӅӥU} "B`ʆǪƩ Ɛee` 3BƦʆǢ &Ɛeǐ WB WBLB 3B'&&&8儨児V}祂*LB&&*ń8&&LB B`hihiHHȱȱLAc !#3`W}LAJJJJ`H Ah`Hȩh ALDC ALDC xALDC ALDC AH8X}`HhHh CLDC BHI V䅠LDC LC ALDCԆ ؠPIPP`Y} DP ALDC @DLD DLED YDLDH- D8塪墨hLYD rDLD yDLD DȹP`Z}텠8堨塪 D芨Oȩ-`PP CP棩 Ѥģ0-ģ6000:,80H [}& &ehe&eģ0ʥ 8堅塅`$ D&*i0:0i DƦ`¢ 护\}°ڱ%ȱ%E DLE担CS CLEI rDLEH mELE @DLE &B V DCNLMȑ]}` MLN%B VLDCS:UFE:ZFH C ]F^F hC Ch)0IXFYFLhC[\ZUVT` FXFYF^}` FLD FLC FL D) ` FLD yB` 0d Aҥ `2)2_}ҩ`҅`0)9TG`@0)ӈJJJJ)`Ѕ`ȱ`` Gȥ`Hh`}ƣĢ`ƥĤ`Ѣ H`ȱѢĦ`膡`a}`ťƤe8夰L)H Ƥ8`ŦeѠe桊L-H$b}c}d}e}((f}(LJJJH`LJj xG8HHHH yBHH CLK D:FONT.SEg}TK  hCJJJJL|K CJLVK C`HmJHmJJ GJйJL/K C`LKKKh}ȌK0̓KuKLKKȌKKKKͅKKLKKKLKKKLK`LK FLK ˠҢK C K`8WL Li}LLLL%LD:*.000L mL*(mLLNLD:*.001LȑF mL*(mLLvLD:*.002Lȑn mLj}*(mLLLD:*.003Lȑ mL*(mLLLD:*.004Lȑ mL*(mLLLD:*.005Lȑ我 mL*(mLk}LMD:*.006Mȑ mL*(mLL>MD:*.007Mȑ6 mL*(mLLfMD:*.008Mȑ^ mL*(mLLMl}D:*.009Mȑ mL*(mLLMD:*.010MȑL mL*(mLȱJ6 H`LMMHM L Cm}J6 hCH`LNJJ CJr CNJJBNBNNL}NNJJI LwNJNJJJJ 6HJJJ HL}NNL7Nn}NrJNNNLNNrJI LNJNrJrJ 6HJJr HLNNLN`LN _F15J04J4Ji5JiG4Jo}i5Ji4Ji 5Ji4Ji 5JiNNL]O4JmN5JiNL7O`LcO Np}HH B GLOO C FLOANTICO C FLOSOFTWAREO C FLP q}O C FL/P P! C  FJJ C  FJr C FLP r}Pb C FLP"Press for Screen, for PrinterP C CLPK:Pȩ hC@ C_Os}_OIP _OISLP FL2Q$ Q C C_O`LIQDQDQISL[Q` FLQPRESS t} FOR CONTINOUS FEEDQg C FLQPRESS FOR SINGLE SHEETQ C CLQK:Q hC@ CEQEQISu} EQICLQ FL R R C FLQR R3 C CEQ`Liv}RdRcReRHICL(SdRcR FLRàR C CLRK:R hC CeReRILRw} CeR`dRcR FLS R C C`L4S ȢIl GHlIH͟HLdSH Cx}`-S8H}S}S-SL T8H-S/S/SH.S.SI LT0SHSS0SLS/Sm0SH0SlI0SLS8/SH8H/SlIy}H CIlH HHi/S/S`-SLrSH C`LTTTTTTH>T>TTL|T CTTILYTL|TLmTTz}I TILmTL|TTTHTL3T8THT`LTTTT MTTILTT`TLUT TT 1STH{}TILTHITIL,UHI8L,UHT8HUU͍TL#U DTL UTiH7͢HLyUT ͍TLPU DTL;UH|}  fRTTILvU CT`LU͢HLUHILUH fRT} DTILU CT`LT CT`LU }}FLUҠӠԠ΢U C K`LUAUAUJAJA J MU NUH `OUU FQUUH ~}DUIPLV8HPHH CLvVP:Vs hCd͠HLV D UL'WLVH$H CLVE:V hC} DUU TUUILV fRUL!WLWUILWL!WLWU ULWL!WLVL'WLHVL'VUAUA``UV hCq888888ffffff~~`~~fl0fF>6xo~{>>888>|||f< }c6>8pp8? }w><~~~<||`x`~<~~< }0~0 ~ <~~<~~f~``~~f~~~``~~~f~~f~`~~~~f~~``~~ff8888<>>``f||f88<<w }wk~~fff~~ff~~~f~``~~f~~~```~`~~~~fff~~ff~<ckwf~<~fff~~~~~0~<~~< }~x|ngTTTTTT~f~``~~f~~~```~`~~~~fff~~ff~<ckwf~<~fff~~~~~0~<~~< The Solid Object Moduleby Bard ErmentroutThis documentation may not be copied, photocopied, reproduced, translated, or tel}ecommunicated in any form, in whole or in part, without the prior written consent of Antic Publishing, Inc.The accompanying} program material may not be duplicated, in whole or in part, for any purpose. No copies of the floppy disk(s) may be sold o}r given to any person or other entity.Notwithstanding the above, the documentation and accompanying disk(s) may be duplicat}ed for the sole use of the original purchaser.Antic is a trademark of Antic Publishing, Inc.nying disk(s) may be duplicat` ATTENTION!!! Before you attempt to use this module, you must install it for your version of RAMBRANDT. The inst}alled module will be on a separate disk from RAMBRANDT, but it does need to check your copy.Boot up side one of this disk w}ith BASIC. When you get the READY prompt, type RUN "D:INSTALL.BAS". First it will ask you to insert your RAMBRANDT disk so }it can determine the version. Next it will ask you to install the 3D-Module diskette (other side of this) and it will then i}nstall the correct version. After you have done this, you can begin playing with the module. WELCOME !! Welc}ome to the world of 3D Solid Graphics. This module is an implementation of 3D solid drawing algorithms developed by Richard }Rylander for the Commodore 64 in Dr. Dobbs Journal, May 1985, p50. The code has been substantially modified to take advantag}e of the many graphics modes on the ATARI. The module is quite complex but hopefully when you see how powerful it is you wil}l be encouraged to use it. Using the joystick or the arrow keys and the period (.), you will be able to draw a variety of 3D} solids such as spheres, cylinders, and doughnuts in a variety of shading and lighting styles. Install the module as des}cribed above and then run RAMBRANDT. Insert the module disk after you have chosen the graphics mode you wish to work in. I }suggest for the moment that you choose mode 1 since that give the most satisfactory results. In general, it is a good practi}ce to save your picture to disk before running this module since some mistakes cannot be undone. Since we are just starting }out, that will not be necessary now. Press "G" and the module loader will come up. Since there is only one module on the di}sk, press "0" when asked for module number. The screen will flicker a bit and the your paint palette will appear. The }palette which appears is a split screen with a 4 line text window and your picture. While you cannot remove the text window,} you can draw behind it. Since each graphics mode on RAMBRANDT has different screen coordinates (mode 0 is 160 across by 96 }down and mode 1 is 80 across by 192 down), the screen coordinates for the module have been made to be independent of the grap}hics mode. The coordinates are 320 across by 240 down with (0,0) at the lower left corner instead of the upper left corner a}s is the usual case. This means that a figure (such as a sphere with a center at (50,60) and a radius of 30) will look the s}ame in any graphics mode. When you first load the module, you are in the command mode, moving the joystick causes the te}xt cursor to move around to each of the commands. To execute a command, you press the trigger or the "." key when the cursor} lies over the desired command. You will also notice that there are several graphics cursors on your screen, as you change p}arameters the positions of the cursors change. All parameters are changed either by moving the joystick left to right or by }using the 4 arrow keys on the keyboard. The values of the parameters are shown graphically by the positions of the cursors a}nd also by the numbers next to each parameter. Once you have set parameters, press the button again to get back to command m}ode. As with the other modules, you exit back to RAMBRANDT by pressing the start key. There are two commands that d}o not appear on the text window. There is a single number at the upper right hand corner of the text window. This indicates} the size of the steps the joystick and arrow keys take when you change parameters. Pressing the space bar increases this si}ze from 1 to 10 to 50 and then back to 1. Thus you can rapidly move around the screen and also make fine adjustments. The o}ther keyboard command is "D". This gives you a menu of up to 5 dithering styles. This will be explained later. } The objectsThere are eight objects which can be drawn with this module. You can also draw only parts of them. By }fitting together the different parts you can draw complicated and beautiful 3D pictures. Each of the objects is defined by f}our parameters which you can change by manipulating the joystick. These parameters are the center point (XC,YC), the outer r}adius (RO), and the inner radius/halflength (RI/H). Not all of the objects use all the parameters. The eight objects are il}lustrated along with the meaning of the parameters in the mode 4 picture #8 on the module disk. Without further ado, I bring} you the eight objects: 1. SPHERE, this is a solid ball of radius RO centered at (XC,YC) 2. TORUS, this is a doughn}ut centered at (XC,YC) with an outer radius RO and an inner radius (RI/H). 3. VCYLND, this is a vertical cylinder, cente}red at (XC,YC) with radius (RO) and halfheight (RI/H). The total height of the cylinder is twice the halfheight. 4. HCY}LND, this is a horizontal cylinder, centered at (XC,YC) with radius, (RO) and halflength (RI/H). The remaining 4 object}s represent different views of the torus. The edge-tori are side views of the doughnut and the spools are inside views. The}se look just like spools with thin centers flaring outward. 5. VSPOOL, this is a vertical spool centered at (XC,YC) with} an outer radius RO and an inner radius (RI/H). It flares as you go up and down. 6. HSPOOL, this is a horizontal spool }centered at (XC,YC) with an outer radius RO and an inner radius (RI/H). It flares as you go left to right. 7. VEDGTR, t}his is a side view of a doughnut centered at (XC,YC), with inner radius (RO) and outer radius (RI/H). 8. HEDGTR, this is} like a VEDGTR but is flipped on its end. SELECTING OBJECTSTo select an object, move the text cursor to the part }of the menu which says SHAPE. Press the trigger and then move the stick to the left. Each of the object names will appear e}xactly in the order above. When the name of the object you wish to draw appears, press the button again. CHANGING }PARAMETERSEach object is described by up to 4 parameters which you change with the arrow keys or the joystick. To change a }parameter, move the stick until the parameter you wish to change on the menu is highlighted. Press the trigger. Now as you }move the stick, the parameter changes; so do the cursors on the screen. They give you an idea of the general dimensions of y}our object. When you first enter the module, the rate of change of the parameters is set to 1, so they change very slowly. }Pressing the space bar increments the change so that you can change them more rapidly. I usually set the increment to 10. N}ote that if you want to change the center you can pick XC or YC, both are changed at the same time by the joystick, XC by mov}ing left to right and YC by moving up and down. To change the outer radius for tori and spools, or the radius for spheres an}d cylinders, pick RO and move left to decrease, right to increase. To change the height or length of cylinders or the inner }radius of tori and spools, pick (RI/H) and move left to right. Now you are ready to draw some objects on the screen. F}or the moment, we will skip the rest of the commands. Lets start easy, we will draw a ball with radius 30 centered at XC=40 }and YC=200. This will appear in the upper left hand side of the screen. First pick the sphere as your object. Next choose t}he radius, by picking RO. Move the stick until it reads 30 and press the button. Next pick XC or YC and move the stick unti}l XC=40 and YC=200. Press the button. You are all set up to make an object. Move the text cursor to the command on the men}u called "OKAY". Press the button. The object will be drawn.Suppose, you do not like the shape. Then you can often undo }it after it is drawn. Move to the "UNDO" command and press the button. The computer will buzz. This is a warning to let yo}u know that you are doing something permanent. If you really want to undo it, press the space bar, otherwise press any other} key. NOTE: If the shape you make is too big, you cannot undo it !! The computer will warn you of this before it make}s the shape. So, if the shape is real big, when you press "OKAY", a warning buzzer will sound. This lets you know that you }will not be able to undo the shape. If you wish to procede, press the space bar and the shape will be drawn. Otherwise, pre}ss any other key. Play around by drawing other shapes. Don't worry about the ghastly colors, we will be able to do muc}h better shortly. CLIPPING WINDOWS You are not forced to draw entire objects, it is possible to restrict wha}t is drawn. This is accomplished by changing the 4 numbers LEFT, RITE, UP, and DOWN. They are initially set to 255 each. T}hat is, the whole object is always drawn. By changing these numbers, you can force the computer to draw partial objects. Th}e program will not draw points that are farther than LEFT points to the left of the center, RIGHT points to the right of the }center, UP points above the center, and DOWN points below the center. If you set UP to 0, then no points above the center wi}ll be drawn. If you set LEFT to 20, no points farther than 20 from the center will be drawn. This flexibility also lets you} draw parts of big objects a little at a time. If all the clipping numbers are set to 0, only the center will be drawn. Onl}y movements left to right change these numbers SHADING STYLE AND COLOR SELECTIONThis is where you can really shine, no pu}n intended. You can choose from 5 shading styles and also from up to 5 halftone types. The program creates an illusion of 3}D by carefully calculating the amount of light that would be reflected from a true 3d object and then choosing the colors of }points to be plotted. Mode 1 has 16 different luminences but only one color, so that in this mode, parts of the object which} are brighter are plotted with a brighter color. Other modes do not have this flexibility, but another technique can be used} to shade them. A newspaper photo and your dot matrix printer emulate different shades by plotting black dots at different d}ensities. This is called "DITHERING". This module is capable of using a two color dither to create halftone shading. When }you choose one of the two color halftone shadings, you can also choose two colors from your palette. The two colors are call}ed FORE and BACK. Move the stick to either FORE or BACK and press the trigger. As you move the stick to the left, each of y}our available colors is cycled, so that in mode 4, the colors are 0,1,2,and 3, etc. When you have made your choice, press th}e trigger again. You can also imitate 8 shades and 4 shades like the 16 shades of mode 1. To choose a shading style, mov}e the text cursor to "SHAD" and press the button. Move the stick to the left or left arrow until the desired style shows. T}hen press the button. The 5 styles are:1. DTH, this is a two color shading style that plots one of two colors depending on} the brightness of the point being plotted. For each point to be plotted, a shading value is computed by the program and the}n this is compared to an entry in a table. If the value is greater than the entry, the FORE color is plotted, otherwise the }BACK color is plotted. There are many different ways to dither the shades. You can choose from among five of them by press}ing "D". A menu of 5 dither types comes up. Rather than describe them, I leave it up to you to discover their differences. } You can also create your own by using a simple BASIC program included with this disk.2. RAN, this is also a two color shad}ing style, but it produces a much more random texture. For each point, a shading value is computed, a random number is drawn} and if the number is less than the shading value, FORE color is plotted otherwise BACK color is selected. 3. G16, this au}tomatically selects one of 16 different shades or colors based on the brightness of a computed point. For modes 0,2, and 4 t}his style will look silly because there are not 16 colors to choose from. The brighter the point, the higher the color value}. This is fantastic in mode 1 and produces beautiful metallic looking objects.4. G08, this is like G16, but produces only }8 color shades. It uses the first eight colors of your color palette. It is best for mode 2 where you have a selection of 9} colors. As above all color selection is automatic.5. G04, with this you get only four shades, this is suitable for modes }0 and 4. Color selection is automatic. LIGHTING STYLE There are two different lighting styles available, }back light and normal. Move to LITE and press the button, move the stick to the left or use the left arrow key to toggle bet}ween NOR (normal) and BAK (backlit). The light source is directly over your right shoulder, thus the right side of an object} is always brightest. NOTE: There is a small bug which I cannot seem to fix. When you first start, the default is NOR, nor}mal, but it is actually BAK. To get NOR, pick LITE and toggle until NOR shows up again. It is now OK. The on}ly command left is the CLRS command, which clears the screen of everything. Move over this command and press the trigger. A} warning buzz is sounded which lets you know you are making a permanent change. Press the space bar if you wish to continue,} otherwise press any other key. SUMMARY CHOOSING SHAPES: Move to SHAPE and press trigger, move stic}k until desired object appears, press trigger. CHOOSING PARAMETERS: Move to XC,YC, RO, or RI/H and press trigger, move }stick until value is shown, press trigger. CHANGING SPEED: Press space bar to change the amount the parameters change a}s you move the stick. CLIPPING: Move to LEFT, RITE, UP, or DOWN and press trigger, move stick until value desired shows} and press trigger. SHADING: Move to SHAD and press the trigger, move stick until desired style appears, and press trig}ger. For RAN and DTH, you can select the light color FORE and the dark color BACK. If you choose DTH, you can also pick a d}ither style by pressing "D". A menu of 5 styles appears. COLOR SELECTION: For DTH and RAN shading styles, you can pic}k the colors by moving to FORE or BACK and pressing the trigger, move stick to select color, and press trigger when done. } LIGHTING STYLE: Move to LITE and press trigger, move stick to toggle between NOR (normal) and BAK (backlit). DRAWIN}G SHAPE: Move to OKAY and press trigger. If the object is small enough it will start to draw it. If it is large, it will b}uzz. This warns you that you cant undo it. If you still want to draw, press space bar otherwise press any other key. }UNDO: Move to UNDO and press trigger, it will buzz to warn you. If you still want to continue, press space bar, otherwise p}ress any other key. CLEARING SCREEN: Move to CLRS and press trigger, it will buzz to warn you. Press space bar to pro}ceed, otherwise press any other key. EXITING: Press any console key, such as .The order in which you select p}arameters does not matter. I always pick the shape first and then pick the parameters. Finally, I choose the shading and li}ghting styles. ADVANCED USERS!!!!If you want to experiment with different types of halftone shading, the program allo }ws you to create your own dithering array in BASIC and include it on your module disk. A dither array is an 8 by 8 array } of numbers between 0 and 63. The array has 8 columns numbered 0,1,...,7 and eight rows, 0,...,7. When a point is to be plo }tted, its shading value, v, is computed and shifted so that it is between 0 and 63. Next the x and y coordinates are both di }vided by 8 leaving remainders between 0 and 7. These two remainders are used as an index into the 8 by 8 dither array to get } a number, d. If v is larger than d, then the FORE color is plotted, otherwise the BACK color is plotted. EXAMPLE. The} point x=93 and y=67 has a shading value of 23. The remainder of x after dividing by 8 is 5 and the remainder of y is 3. We} look in column 5 and row 3 of the dither matrix and find the number 38. Since the shading value is less than 38, the BACK c}olor is plotted. To use the dither making program, load "D:DITHER.BAS". There are 8 DATA statements corresponding to th}e eight rows of the dither array. Just change these to whatever you want ( all should be between 0 and 63 ) and then run the} program. If you want to create several different ones, just add them to the end of the program and change the RESTORE state}ment on line 200. LAST MINUTE NOTES1.The cursors are always the highest color so that if you call the module di}rectly after booting up in modes 0 and 4, the cursors will be hard to see since they are yellow on a white background. Chang}e the background color before you go into the module, you can always change it back.2. Touchtablet support would have been }very difficult to incorporate into the module driver. I hope this is not too great an inconvenience.3. Any display list in}terrupts in your picture will not be shown in the module screen. Do not worry they are still with your picture.4. Some ob}jects will not be correctly drawn if the radius is too large. Spheres will often look bad for RO larger than around 100. Th}is is due to numerical overflow and can only be fixed at the expense of a great deal of time. Play around a bit to get a fee}l before you go and make permanent changes. And remember, it is always a good idea to backup a picture before you start maki}ng major revisions. MOST OF ALL HAVE LOTS OF FUN !! Special BonusYou asked for it, and here it is!!!On} the front of this disk is a program called PATCH.BAS. This will patch your copy of RAMBRANDT so that it will support the st}ylus button on the ATARI Touch Tablet. Before you attempt to use this patch, you must install it in your copy of RAMBRANDT.} You should do this on a back-up copy of RAMBRANDT, not on your original. To make a back-up, you will need a Sector Copier. T}hese are generally available in the public domain from user groups. Antic also has one available as part of Sherlock 1050 (A }P0155).Boot up side one of this disk with BASIC. When you get the READY prompt, type RUN "D:PATCH.BAS". Follow the instructi!}ons in the program. one of this disk with BASIC. When you get the READY prompt, type RUN "D:PATCH.BAS". Follow the instructi ATTENTION!!!There have been two versions of RAMBRANDT, the Mosaic RAMdisk version (no longer available) and the 1#}30XE RAMdisk version. If you have the older, Mosaic version, you will have to run a special customizing program before you us$}e the Solid Object Module for the first time. If you customize it for the Mosaic version now and want to change it for the 13%}0XE version at a later date, just run the customizer program again. If you have the 130XE version of RAMBRANDT, skip the cust&}omizing section.To run the customizing program, you will need a disk with DOS 2.0 or DOS 2.5, Atari BASIC, and your RAMBRAN'}DT disk. It is recommended that you use a copy of RAMBRANDT and the Solid Object Module and not the originals. To make back-u(}p copies, you will need a Sector Copier. These are generally available in the public domain from user groups. Antic also has)} one available as part of Sherlock 1050 (AP0155).Boot up your DOS 2.0 or 2.5 disk with BASIC. When you get the BASIC "READY*}" prompt, take out the DOS disk and insert the DOCUMENTATION side of the Solid Object Module disk. Then type: RUN "D:CUST+}OM.BAS" First it will ask you to insert your RAMBRANDT disk so it can determine the version you have. Next it wi,}ll ask you to insert the 3D-Module disk. Turn over the disk and insert it with the label up. It will then customize the modu-}le. After you have done this, you can begin playing with the module. WELCOME !!Welcome to the world of 3D Soli.}d Graphics. This module is an implementation of 3D solid drawing algorithms developed by Richard Rylander for the Commodore /}64 in Dr. Dobbs Journal, May 1985, p50. The code has been substantially modified to take advantage of the many graphics mode0}s on the ATARI. The module is quite complex but hopefully when you see how powerful it is you will be encouraged to use it. 1} Using the joystick or the arrow keys and the period (.), you will be able to draw a variety of 3D solids such as spheres, cy2}linders, and doughnuts in a variety of shading and lighting styles.We recommend that you make a copy of the Solid Object Mo3}dule and put the original in a safe place. Like RAMBRANDT, the Solid Object Module can only be copied by a sector copier, no4}t by DOS. Public domain sector copiers are readily available from user groups. A sector copier is also included with SHERLOC5}K 1050 (AP0155), from the ANTIC Catalog.There are three sample pictures on the Solid Object Module disk. DO NOT save any mo6}re pictures to this disk. They will overwrite the module code and destroy the program. Keep this disk copy-protected at all t7}imes.Boot up RAMBRANDT in the usual way. Then remove the RAMBRANDT disk and insert the module disk. Choose the mode you wa8}nt to work in. I suggest for the moment that you choose mode 1 since that give the most satisfactory results. In general, i9}t is a good practice to save your picture to disk before running this module since some mistakes cannot be undone. Since we :}are just starting out, that will not be necessary now. Press "G" and the module loader will come up. Since there is only on;}e module on the disk, press "0" when asked for module number. The screen will flicker a bit and the your paint palette will <}appear. The palette which appears is a split screen with a 4 line text window and your picture. While you cannot remov=}e the text window, you can draw behind it. Since each graphics mode on RAMBRANDT has different screen coordinates (mode 0 is>} 160 across by 96 down and mode 1 is 80 across by 192 down), the screen coordinates for the module have been made to be indep?}endent of the graphics mode. The coordinates are 320 across by 240 down with (0,0) at the lower left corner instead of the u@}pper left corner as is the usual case. This means that a figure (such as a sphere with a center at (50,60) and a radius of 3A}0) will look the same in any graphics mode. When you first load the module, you are in the command mode, moving the joysB}tick causes the text cursor to move around to each of the commands. To execute a command, you press the trigger or the "." kC}ey when the cursor lies over the desired command. You will also notice that there are several graphics cursors on your screeD}n, as you change parameters the positions of the cursors change. All parameters are changed either by moving the joystick leE}ft to right or by using the 4 arrow keys on the keyboard. The values of the parameters are shown graphically by the positionF}s of the cursors and also by the numbers next to each parameter. Once you have set parameters, press the button again to getG} back to command mode. As with the other modules, you exit back to RAMBRANDT by pressing the start key. There are tH}wo commands that do not appear on the text window. There is a single number at the upper right hand corner of the text windoI}w. This indicates the size of the steps the joystick and arrow keys take when you change parameters. Pressing the space barJ} increases this size from 1 to 10 to 50 and then back to 1. Thus you can rapidly move around the screen and also make fine aK}djustments. The other keyboard command is "D". This gives you a menu of up to 5 dithering styles. This will be explained lL}ater. The objectsThere are eight objects which can be drawn with this module. You can also draw only pM}arts of them. By fitting together the different parts you can draw complicated and beautiful 3D pictures. Each of the objecN}ts is defined by four parameters which you can change by manipulating the joystick. These parameters are the center point (XO}C,YC), the outer radius (RO), and the inner radius/halflength (RI/H). Not all of the objects use all the parameters. The eiP}ght objects are illustrated along with the meaning of the parameters in the mode 4 picture #8 on the module disk. Without fuQ}rther ado, I bring you the eight objects: 1. SPHERE, this is a solid ball of radius RO centered at (XC,YC) 2. TORUSR}, this is a doughnut centered at (XC,YC) with an outer radius RO and an inner radius (RI/H). 3. VCYLND, this is a verticS}al cylinder, centered at (XC,YC) with radius (RO) and halfheight (RI/H). The total height of the cylinder is twice the halfhT}eight. 4. HCYLND, this is a horizontal cylinder, centered at (XC,YC) with radius, (RO) and halflength (RI/H). The U}remaining 4 objects represent different views of the torus. The edge-tori are side views of the doughnut and the spools are V}inside views. These look just like spools with thin centers flaring outward. 5. VSPOOL, this is a vertical spool centerW}ed at (XC,YC) with an outer radius RO and an inner radius (RI/H). It flares as you go up and down. 6. HSPOOL, this is aX} horizontal spool centered at (XC,YC) with an outer radius RO and an inner radius (RI/H). It flares as you go left to right.Y} 7. VEDGTR, this is a side view of a doughnut centered at (XC,YC), with inner radius (RO) and outer radius (RI/H). Z}8. HEDGTR, this is like a VEDGTR but is flipped on its end. SELECTING OBJECTSTo select an object, move the text c[}ursor to the part of the menu which says SHAPE. Press the trigger and then move the stick to the left. Each of the object n\}ames will appear exactly in the order above. When the name of the object you wish to draw appears, press the button again.]} CHANGING PARAMETERSEach object is described by up to 4 parameters which you change with the arrow keys or the joyst^}ick. To change a parameter, move the stick until the parameter you wish to change on the menu is highlighted. Press the tri_}gger. Now as you move the stick, the parameter changes; so do the cursors on the screen. They give you an idea of the gener`}al dimensions of your object. When you first enter the module, the rate of change of the parameters is set to 1, so they chaa}nge very slowly. Pressing the space bar increments the change so that you can change them more rapidly. I usually set the ib}ncrement to 10. Note that if you want to change the center you can pick XC or YC, both are changed at the same time by the jc}oystick, XC by moving left to right and YC by moving up and down. To change the outer radius for tori and spools, or the radd}ius for spheres and cylinders, pick RO and move left to decrease, right to increase. To change the height or length of cyline}ders or the inner radius of tori and spools, pick (RI/H) and move left to right. Now you are ready to draw some objectsf} on the screen. For the moment, we will skip the rest of the commands. Lets start easy, we will draw a ball with radius 30 g}centered at XC=40 and YC=200. This will appear in the upper left hand side of the screen. First pick the sphere as your objeq}B%DOS SYSB*)DUP SYSB-SAUTORUN SYSB FONT SETBDOC 000CDOC 001B"DOC 001B DITHER BASB PATCH BASB CUSTOM BASct. Next choose the radius, by picking RO. Move the stick until it reads 30 and press the button. Next pick XC or YC and mr}ove the stick until XC=40 and YC=200. Press the button. You are all set up to make an object. Move the text cursor to the s}command on the menu called "OKAY". Press the button. Press the space bar and the object will be drawn.Suppose, you do nott} like the shape. Then you can often undo it after it is drawn. Move to the "UNDO" command and press the button. The computu}er will buzz. This is a warning to let you know that you are doing something permanent. If you really want to undo it, presv}s the space bar, otherwise press any other key. NOTE: If the shape you make is too big, you cannot undo it !! The comw}puter will warn you of this before it makes the shape. So, if the shape is real big, when you press "OKAY", a warning buzzerx} will sound. This lets you know that you will not be able to undo the shape. If you wish to procede, press the space bar any}d the shape will be drawn. Otherwise, press any other key. Play around by drawing other shapes. Don't worry about thez} ghastly colors, we will be able to do much better shortly. CLIPPING WINDOWS You are not forced to draw enti{}re objects, it is possible to restrict what is drawn. This is accomplished by changing the 4 numbers LEFT, RITE, UP, and DOW|}N. They are initially set to 255 each. That is, the whole object is always drawn. By changing these numbers, you can force}} the computer to draw partial objects. The program will not draw points that are farther than LEFT points to the left of the~} center, RIGHT points to the right of the center, UP points above the center, and DOWN points below the center. If you set U}P to 0, then no points above the center will be drawn. If you set LEFT to 20, no points farther than 20 from the center will} be drawn. This flexibility also lets you draw parts of big objects a little at a time. If all the clipping numbers are set} to 0, only the center will be drawn. Only movements left to right change these numbers SHADING STYLE AND COLOR SELECTION}This is where you can really shine, no pun intended. You can choose from 5 shading styles and also from up to 5 halftone ty}pes. The program creates an illusion of 3D by carefully calculating the amount of light that would be reflected from a true }3d object and then choosing the colors of points to be plotted. Mode 1 has 16 different luminences but only one color, so th}at in this mode, parts of the object which are brighter are plotted with a brighter color. Other modes do not have this flex}ibility, but another technique can be used to shade them. A newspaper photo and your dot matrix printer emulate different sh}ades by plotting black dots at different densities. This is called "DITHERING". This module is capable of using a two color} dither to create halftone shading. When you choose one of the two color halftone shadings, you can also choose two colors f}rom your palette. The two colors are called FORE and BACK. Move the stick to either FORE or BACK and press the trigger. As} you move the stick to the left, each of your available colors is cycled, so that in mode 4, the colors are 0,1,2,and 3, etc.} When you have made your choice, press the trigger again. You can also imitate 8 shades and 4 shades like the 16 shades }of mode 1. To choose a shading style, move the text cursor to "SHAD" and press the button. Move the stick to the left or le}ft arrow until the desired style shows. Then press the button. The 5 styles are:1. DTH, this is a two color shading style} that plots one of two colors depending on the brightness of the point being plotted. For each point to be plotted, a shadin}g value is computed by the program and then this is compared to an entry in a table. If the value is greater than the entry,} the FORE color is plotted, otherwise the BACK color is plotted. There are many different ways to dither the shades. You c}an choose from among five of them by pressing "D". A menu of 5 dither types comes up. Rather than describe them, I leave it} up to you to discover their differences. You can also create your own by using a simple BASIC program included with this di}sk.2. RAN, this is also a two color shading style, but it produces a much more random texture. For each point, a shading v}alue is computed, a random number is drawn and if the number is less than the shading value, FORE color is plotted otherwise }BACK color is selected. 3. G16, this automatically selects one of 16 different shades or colors based on the brightness of} a computed point. For modes 0,2, and 4 this style will look silly because there are not 16 colors to choose from. The brig}hter the point, the higher the color value. This is fantastic in mode 1 and produces beautiful metallic looking objects.4.} G08, this is like G16, but produces only 8 color shades. It uses the first eight colors of your color palette. It is best }for mode 2 where you have a selection of 9 colors. As above all color selection is automatic.5. G04, with this you get onl}y four shades, this is suitable for modes 0 and 4. Color selection is automatic. LIGHTING STYLE There are} two different lighting styles available, back light and normal. Move to LITE and press the button, move the stick to the le}ft or use the left arrow key to toggle between NOR (normal) and BAK (backlit). The light source is directly over your right }shoulder, thus the right side of an object is always brightest. NOTE: There is a small bug which I cannot seem to fix. Whe}n you first start, the default is NOR, normal, but it is actually BAK. To get NOR, pick LITE and toggle until NOR shows up a}gain. It is now OK. The only command left is the CLRS command, which clears the screen of everything. Move o}ver this command and press the trigger. A warning buzz is sounded which lets you know you are making a permanent change. Pr}ess the space bar if you wish to continue, otherwise press any other key. SUMMARY CHOOSING SHAPES: }Move to SHAPE and press trigger, move stick until desired object appears, press trigger. CHOOSING PARAMETERS: Move to X}C,YC, RO, or RI/H and press trigger, move stick until value is shown, press trigger. CHANGING SPEED: Press space bar to} change the amount the parameters change as you move the stick. CLIPPING: Move to LEFT, RITE, UP, or DOWN and press tri}gger, move stick until value desired shows and press trigger. SHADING: Move to SHAD and press the trigger, move stick u}ntil desired style appears, and press trigger. For RAN and DTH, you can select the light color FORE and the dark color BACK.} If you choose DTH, you can also pick a dither style by pressing "D". A menu of 5 styles appears. COLOR SELECTION: F}or DTH and RAN shading styles, you can pick the colors by moving to FORE or BACK and pressing the trigger, move stick to sele}ct color, and press trigger when done. LIGHTING STYLE: Move to LITE and press trigger, move stick to toggle between NO}R (normal) and BAK (backlit). DRAWING SHAPE: Move to OKAY and press trigger. If the object is small enough it will st}art to draw it. If it is large, it will buzz. This warns you that you cant undo it. If you still want to draw, press space} bar otherwise press any other key. UNDO: Move to UNDO and press trigger, it will buzz to warn you. If you still want} to continue, press space bar, otherwise press any other key. CLEARING SCREEN: Move to CLRS and press trigger, it will} buzz to warn you. Press space bar to proceed, otherwise press any other key. EXITING: Press any console key, such as} .The order in which you select parameters does not matter. I always pick the shape first and then pick the paramet}ers. Finally, I choose the shading and lighting styles. ADVANCED USERS!!!!If you want to experiment with different t}ypes of halftone shading, the program allows you to create your own dithering array in BASIC and include it on your module di}sk. A dither array is an 8 by 8 array of numbers between 0 and 63. The array has 8 columns numbered 0,1,...,7 and eight} rows, 0,...,7. When a point is to be plotted, its shading value, v, is computed and shifted so that it is between 0 and 63.} Next the x and y coordinates are both divided by 8 leaving remainders between 0 and 7. These two remainders are used as an} index into the 8 by 8 dither array to get a number, d. If v is larger than d, then the FORE color is plotted, otherwise the} BACK color is plotted. EXAMPLE. The point x=93 and y=67 has a shading value of 23. The remainder of x after dividing }by 8 is 5 and the remainder of y is 3. We look in column 5 and row 3 of the dither matrix and find the number 38. Since the} shading value is less than 38, the BACK color is plotted. To use the dither making program, boot a DOS disk with BASIC.} Remove the DOS disk and insert the documentation side of the Solid Objcet Module disk. Type: RUN "D:DITHER.BAS" There }are 8 DATA statements corresponding to the eight rows of the dither array. Just change these to whatever you want (all shoul}d be between 0 and 63) and then run the program. If you want to create several different ones, just add them to the end of t}he program and change the RESTORE statement on line 200. LAST MINUTE NOTES1.The cursors are always the highest }color so that if you call the module directly after booting up in modes 0 and 4, the cursors will be hard to see since they a}re yellow on a white background. Change the background color before you go into the module, you can always change it back.}2. Touchtablet support would have been very difficult to incorporate into the module driver. I hope this is not too great an} inconvenience.3. Any display list interrupts in your picture will not be shown in the module screen. Do not worry they ar}e still with your picture.4. Some objects will not be correctly drawn if the radius is too large. Spheres will often look} bad for RO larger than around 100. This is due to numerical overflow and can only be fixed at the expense of a great deal o}f time. Play around a bit to get a feel before you go and make permanent changes. And remember, it is always a good idea to} backup a picture before you start making major revisions. MOST OF ALL HAVE LOTS OF FUN !! Special Bonus}You asked for it, and here it is!!!On the documentation side of this disk is a program called PATCH.BAS. This will patch y}our copy of RAMBRANDT so that it will support the stylus button on the ATARI Touch Tablet. In order to use this patch, you }PL`APTCOGTCVEXLMDDISECCMSHSLAHALOFSEBYT@eA)@@}AI @ @ A7 @5 @xA6104,32,83,228,96 %-A6A@}"!% ;A(,/-@A(+67<,.>:,/ 6-@6-@dR2(*} INSERT }˭Р OF 3D MODULE INTOR( DRIVE 1 AND PRESS ANY KEY n F:Ad,"AUAxAdAU #A }-@@d"!@d6-@d 6-67<,.>:,  6-6-AI} A( } ALL DONE,$6-P:'AV,$6-&$AVAyAx*6-P:C:,'AV,}*6-C:,&AV$9Ai@!Ap-Ar9As6-?:A6,$$2,2,2,2,2,2,2,2}10,10,10,10,10,10,10,1018,18,18,18,18,18,18,1826,26,26,26,26,26,26,2633,33,33,33,33,33,33,3340,40,40},40,40,40,40,4048,48,48,48,48,48,48,4854,54,54,54,54,54,54,54464,64,64,64,64,64,64,64645,45,45,45,45,45},45,45827,27,27,27,27,27,27,27:9,9,9,9,9,9,9,9<0,0,0,0,0,0,0,0>18,18,18,18,18,18,18,18@36,36,36,36,3}6,36,36,36B54,54,54,54,54,54,54,54 D:DITHER.BAS !!!!!!!!((((((((0000000066666666}0efM`APTCOGTCVEXLMDDISECCMSHSLAHALOFSEBYTAA@@@!}A @ A @4 @A6@104,32,83,228,96 %-A6A@!}"!% ;A(,/-@A(+67<,.>:,/ 6-@6-@G/('} INSERT A !}˭ OF RAMBRANDTG( AND PRESS ANY KEY  F:Ad,"AU@0(AdAU26-A6- !}A<E#7@<@,4>:@,/6-A;6-@@E AFE#7@<@,4>:AR,/6-A;!}6-E AP&&( THIS IS NOT A PROPER COPY !! Z A #A -@@"67!}%<%,.>:,  6- A##(} TOUCHTABLET INSTALLED  @$6-P:'AV,$6-&$AV!}AyAx*6-P:C:,'AV,*6-C:,&AV$9Ai@!Ap-Ar9As!}6-?:A6,$$((165,223,172,121,2,192,15,234,208,7 D:PATCH.BAS߬y0LBxJ..J!} LMAPTCOGTCVEXLMDDISECCMSHSLAHALA)@@@AA%}A0 @ @ @t @4 AA6104,32,83,228,96 %-A6A@"!% ;A(%},/-@A(+67<,.>:,/ 6-@6-@C"(} INSERT RAMBRANDT DISKC( IN DRIVE%} 1 & PRESS ANY KEY  F:Ad,"AU@&1AdAU!6-A'6-1 AE#7@<@,4%}>:@,/6-A;6-AE @`(E#7@<@,4>:AR,/6-A;6-AE @`2&&( NOT%} PROPER COPY OF RAMBRANDT 7 @%<((( } ŠԠˠ >H%(INSERT OF 3D MODULE DISKH( INT%}O DRIVE 1 & PRESS ANY KEY A F:Ad,"AU@eFAdAUP-@Z 6-%6- A%}_!6-A!%6-! Ad n 6-6- Ax6-A06- A INSTALLATION COMP%}LETE $6-P:'AV,$6-&$AVAyAx*6-P:C:,'AV,*6-C:,&AV$9A%}i@!Ap-Ar9As6-?:A6,$$ D:CHARLESR/W A$z.J.-?:A6,$$((165,223,172,121,2,192,15,234,208,7 D:PATCH.BAS߬y0LBxJ..J 54,54,54,54,54,54,54,54 D:DITHER.BAS !!!!!!!!((((((((0000000066666666must install it in your copy of RAMBRANDT. You should do this on a back-up copy of RAMBRANDT, not on your original. To make a} back-up, you will need a Sector Copier. These are generally available in the public domain from user groups. Antic also has} one available as part of Sherlock 1050 (AP0155).Boot up a DOS 2.0 or 2.5 disk with BASIC. Remove the DOS disk and insert th}e documentation side of the Solid Object Module disk. Type: RUN "D:PATCH.BAS"Follow the instructions in the progra}m.ocumentation side of the Solid Object Module disk. Type: RUN "D:PATCH.BAS"Follow the instructions in the progra